Python Virtual environment using Conda


Posted by chenchih on 2021-07-07

為什麼要用

首先我想跟各位說為什麼要設虛擬環境,我們都知道python有很多libary。我們可以選擇不要用virtual Env 也可以,並沒有一定要,只是如果今天你安裝很多不同libary 你會發現可能有些會有衝到或是會跑很慢。這個概念就有點像一點腦一直安裝很多程式,這樣不好管理。如果我們有設這環境,我們可以獨立安裝你要用的在不同虛擬環境,這樣也好管理,也不需要debug 當出現錯誤,環境也乾淨也好。

我想分享兩種方式可以建這個環境,第一種就是一般安裝python的方式,用python的指令,另一個方式是用conda 指令。

Python 方式建立virutal envirnoment

1. 開起 CMD 命令提示字元方式,去你要建立的目錄。

Syntax: python3 -m venv source-folder-name
python -m venv testenv

2. 會自動建testenv資料夾,進去資料夾的Scripts裡面,activate 或 deactivate 他,下這個

mac: source-folder-name/Script/activate
Window: source-folder-name/Script/activate

D:\testenv\Scripts\activate
(testenv) D:\>deactivate
D:\

Conda 方式建立virutal envirnoment

conda 命令是需要先安裝 Anaconda這個程式 https://www.anaconda.com/products/individual
安裝完需要把conda路徑加入環境變數理,不然conda指令會找不到。沒有意外,他會安裝C:\Users\username\Anaconda3
這目錄。請把 C:\Users\username\Anaconda3\Library\bin加入環境變數。

我下面會介紹他的指令:

會進入default 的 base

D:\>conda activate
(base) D:\>

看你所有的virenv,三種方法都可以用

conda info --envs # or
conda info -e # or
conda env list

選你要的virenv

conda activate XXX XXX是你的env名稱

D:\>conda activate test
(test) D:\>

建立新的virenv

這裡有幾個方式:
conda create --name XXX XXX是你的env名稱,這姑會用default the base 理的libary 。
conda create --name XXX python --no-default-packages 這個會用空的libary,一定要打python。
conda create --name XXX python=3.7 也可以指令你要的python version
如果你沒有用python他好像會用base裡面所有package,所以要注意。如果你的base libary 不多其實也沒差。

移除virenv

conda env remove --name XXX

其他的指令

  • conda install --yes --file requirements.txt Conda 的安裝清單:
  • conda env export > freeze.yml Conda 輸出成 yml 清單
  • conda list -e > requirements.txt Conda 輸出成 txt 清單
  • conda env create -f freeze.yml 直接創建環境:

PIP install 相關

pip 指令:
pip install -r requirement.txt .txt 放你所有libary,他會幫你安裝所有套件在.txt子理面。


#Python #virenv #Conda







Related Posts

How to solve the perpetual loading issue in Evernote? Evernote 一直轉圈圈的解決辦法

How to solve the perpetual loading issue in Evernote? Evernote 一直轉圈圈的解決辦法

從頭打造一個簡單的 Virtual DOM

從頭打造一個簡單的 Virtual DOM

SQL Injection SQL注入

SQL Injection SQL注入


Comments